In the case that the client is started directly by the compositor the
WAYLAND_SOCKET environment variable is set containing the fd to use that was
created by a socketpair.
This environment variable is consumed by a call to wl_display_connect so a
second call will not take advantage of it.
https://bugzilla.gnome.org/show_bug.cgi?id=697673
{
struct wl_display *wl_display;
+ /* Set by the compositor when launching a special client - and it gets reset
+ * by wl_display_connect so we must avoid calling it twice
+ */
+ if (g_getenv ("WAYLAND_SOCKET"))
+ return TRUE;
+
/* check that a connection to the default display is possible */
wl_display = wl_display_connect (gdk_get_display_arg_name ());